package org.example.day06;

import java.util.Locale;

public class Test {
    /*
    创建字符串String有两种方式: 1.静态方式,直接赋值String a = "abc",这种方式字符串内容是存储在常量池里,
    字符串名字是字符串对象在常量池里的地址
    2.动态方式,String c = new String("abc"),在堆内存重新开辟内容,new一次,就重新开辟一次空间,地址肯定
    不同
    String类型的字符串是固定长度字符串,不可改,当改变字符串内容,会重新开辟空间创建一个字符串对象,将新对象的地址赋值给字符串变量名
    (原来的if无引用,垃圾回收)
    String的常用API方法:    .equals比较字符串内容是否相同...

     */
    public static void main(String[] args) {
        String fileName = "Hello.java";
        fileName.concat("ab");//拼接字符串
        System.out.println(fileName.substring(1));//返回第/位到末尾的字符串
        System.out.println(fileName.indexOf("."));//第一次出现位置
        System.out.println(fileName.lastIndexOf("."));//最后一次出现位置
        System.out.println(fileName.charAt(2));
        String [] arr2 = fileName.split("//.");
        byte arr1[] = fileName.getBytes();
        System.out.println(fileName.toUpperCase());//转换大写字符串
        for (byte value : arr1){
            System.out.println(value);
        }
        char[] arr = fileName.toCharArray();//转换成char数组
        //增强for循环是专门循环数组或者集合的,不会出现越界情况
        for (char value : arr){
            System.out.println(value);
        }
        String a = "hello";
        String b = "hello";
        System.out.println(a==b);//true,常量池里地址相同
    }
}
